package com.chenfan.mcn.model.dto;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.chenfan.mcn.constant.McnConstant;
import com.chenfan.common.extension.validation.DateTimeString;
import lombok.Data;

import javax.validation.constraints.*;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author: WQ
 * Date 2023/3/29
 * @描述 商品导入
 */
@Data
public class CommodityInputDTO implements Serializable {

    private static final long serialVersionUID = -4378180456436921954L;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    @NotBlank(message = "【商品ID】必填")
    @Size(max = 50, message = "【商品ID】长度不能超过{max}个字符")
    private String commodityId;

    /**
     * 商品名称
     */
    @Excel(name = "商品名称")
    @Size(max = 100, message = "【商品名称】长度不能超过{max}个字符")
    private String commodityName;

    @Excel(name = "讲解次数")
    private Integer expoundNum;

    @Excel(name = "首次上架时间", importFormat = McnConstant.LONG_DATE_FORMAT2)
    @DateTimeString(message = "【首次上架时间】录入错误，请参照模板示例")
    private String firstNewDate;

    @Excel(name = "直播间价格")
    private String livePriceStr;

    private BigDecimal livePrice;

    @Excel(name = "成交金额")
    private String transactedAmountStr;

    private BigDecimal transactedAmount;

    @Excel(name = "成交件数")
    private BigDecimal transactedQty;

    @Excel(name = "预售订单数")
    private BigDecimal presaleOrderNum;

    @Excel(name = "商品点击人数")
    private BigDecimal clickNum;

    @Excel(name = "商品曝光-点击率（人数）")
    private String clickRateStr;
    private BigDecimal clickRate;


    @Excel(name = "商品点击-成交转化率（人数）")
    private String tradeTransfRateStr;

    private BigDecimal tradeTransfRate;

    @Excel(name = "商品支付GPM")
    private String payGpmStr;
    private BigDecimal payGpm;

    @Excel(name = "发货前退款订单数")
    private BigDecimal beforeRefundOrderNum;

    @Excel(name = "发货前退款金额")
    private String beforeRefundAmountStr;
    private BigDecimal beforeRefundAmount;


    @Excel(name = "发货前退款人数")
    private BigDecimal beforeRefundNum;

    @Excel(name = "发货前订单退款率")
    private String beforeRefundRateStr;
    private BigDecimal beforeRefundRate;

    @Excel(name = "发货后退款订单数")
    private BigDecimal afterRefundOrderNum;

    @Excel(name = "发货后退款金额")
    private String afterRefundAmountStr;
    private BigDecimal afterRefundAmount;

    @Excel(name = "发货后退款人数")
    private BigDecimal afterRefundNum;

    @Excel(name = "发货后订单退款率")
    private String afterRefundRateStr;
    private BigDecimal afterRefundRate;
}
